﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Esmeralda.Input
{
    public enum Keys
    {

        #region Mouse Buttons
        MouseLeft = 1,
        MouseRight = 2,
        MouseMiddle = 4,
        #endregion

        #region Misc
        CANCEL = 3,
        BACKSPACE = 8,
        TAB = 9,
        CLEAR = 12,
        RETURN = 13,
        SHIFT = 16,
        CTRL = 17,
        ALT = 18,
        PAUSE = 19,
        ESCAPE = 27,
        SPACE = 32,
        PGUP = 33,
        PGDN = 34,
        ENDS = 35,
        HOME = 36,
        LEFT = 37,
        UP = 38,
        RIGHT = 39,
        DOWN = 40,
        SNAPSHOT = 44,
        SELECT = 41,
        PRINT = 42,
        EXECUTE = 43,
        INSERT = 45,
        DELETE = 46,
        HELP = 47,
        LEFT_SHIFT = 160,
        RIGHT_SHIFT = 161,
        LEFT_CONTROL = 162,
        RIGHT_CONTROL = 163,
        LEFT_ALT = 164,
        RIGHT_ALT = 165,
        #endregion

        #region Numbers
        Num0 = 48,
        Num1 = 49,
        Num2 = 50,
        Num3 = 51,
        Num4 = 52,
        Num5 = 53,
        Num6 = 54,
        Num7 = 55,
        Num8 = 56,
        Num9 = 57,
        #endregion

        #region Letters
        A = 65,
        B = 66,
        C = 67,
        D = 68,
        E = 69,
        F = 70,
        G = 71,
        H = 72,
        I = 73,
        J = 74,
        K = 75,
        L = 76,
        M = 77,
        N = 78,
        O = 79,
        P = 80,
        Q = 81,
        R = 82,
        S = 83,
        T = 84,
        U = 85,
        V = 86,
        W = 87,
        X = 88,
        Y = 89,
        Z = 90,
        #endregion

        #region Windows Keys
        LWIN = 91,
        RWIN = 92,
        APPS = 93,
        SLEEP = 95,
        BROWSER_BACK = 166,
        BROWSER_FORWARD = 167,
        BROWSER_REFRESH = 168,
        BROWSER_STOP = 169,
        BROWSER_SEARCH = 170,
        BROWSER_FAVORITES = 171,
        BROWSER_HOME = 172,
        VOLUME_MUTE = 173,
        VOLUME_DOWN = 174,
        VOLUME_UP = 175,
        MEDIA_NEXT_TRACK = 176,
        MEDIA_PREV_TRACK = 177,
        MEDIA_STOP = 178,
        MEDIA_PLAY_PAUSE = 179,
        LAUNCH_MAIL = 180,
        LAUNCH_MEDIA_SELECT = 181,
        LAUNCH_APP1 = 182,
        LAUNCH_APP2 = 183,
        PROCESS = 229,
        ATTN = 246,
        CRSEL = 247,
        EXSEL = 248,
        EREOF = 249,
        PLAY = 250,
        ZOOM = 251,
        PA1 = 253,
        #endregion

        #region Numeric Pad Keys
        NUMPAD0 = 96,
        NUMPAD1 = 97,
        NUMPAD2 = 98,
        NUMPAD3 = 99,
        NUMPAD4 = 100,
        NUMPAD5 = 101,
        NUMPAD6 = 102,
        NUMPAD7 = 103,
        NUMPAD8 = 104,
        NUMPAD9 = 105,
        MULTIPLY = 106,
        ADD = 107,
        SEPARATOR = 108,
        SUBTRACT = 109,
        DECIMAL = 110,
        DIVIDE = 111,
        #endregion

        #region F Keys
        F1 = 112,
        F2 = 113,
        F3 = 114,
        F4 = 115,
        F5 = 116,
        F6 = 117,
        F7 = 118,
        F8 = 119,
        F9 = 120,
        F10 = 121,
        F11 = 122,
        F12 = 123,
        F13 = 124,
        F14 = 125,
        F15 = 126,
        F16 = 127,
        F17 = 128,
        F18 = 129,
        F19 = 130,
        F20 = 131,
        F21 = 132,
        F22 = 133,
        F23 = 134,
        F24 = 135,
        #endregion

        #region Mode Keys
        CAPS_LOCK = 20,
        NUM_LOCK = 144,
        SCROLL_LOCK = 145,
        KANA = 21,
        JUNJA = 23,
        FINAL = 24,
        KANJI = 25,
        CONVERT = 28,
        NONCONVERT = 29,
        ACCEPT = 30,
        MODECHANGE = 31,
        #endregion

        #region OEM Keys
        OEM_1 = 186,
        OEM_2 = 187,
        OEM_3 = 188,
        OEM_4 = 189,
        OEM_5 = 190,
        OEM_6 = 191,
        OEM_7 = 192,
        OEM_8 = 219,
        OEM_9 = 220,
        OEM_10 = 221,
        OEM_11 = 222,
        OEM_13 = 223,
        OEM_14 = 226,
        OEM_15 = 146,
        OEM_16 = 147,
        OEM_17 = 148,
        OEM_18 = 149,
        OEM_19 = 150,
        OEM_20 = 225,
        OEM_21 = 227,
        OEM_22 = 228,
        OEM_23 = 230,
        OEM_24 = 232,
        OEM_25 = 240,
        OEM_26 = 241,
        OEM_27 = 242,
        OEM_28 = 243,
        OEM_29 = 244,
        OEM_30 = 245,
        OEM_CLEAR = 254,
        #endregion
    }
}
